package cn.iocoder.yudao.module.wms.service.inventory.stock;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.wms.controller.admin.inventory.stock.vo.InventoryStockPageReqVO;
import cn.iocoder.yudao.module.wms.controller.admin.inventory.stock.vo.InventoryStockReqVO;
import cn.iocoder.yudao.module.wms.dal.dataobject.inventory.stock.InventoryStockDO;

import java.util.List;

/**
 * 存货现存量 Service 接口
 *
 * @author 曾劲松
 */
public interface InventoryStockService {

    /**
     * 获得现存量档案
     *
     * @param id 编号
     * @return 现存量档案
     */
    InventoryStockDO getInventoryStock(Long id);

    /**
     * 获得现存量档案分页
     *
     * @param pageReqVO 分页查询
     * @return 现存量档案分页
     */
    PageResult<InventoryStockDO> getInventoryStockPage(InventoryStockPageReqVO pageReqVO);

    /**
     * 获得现存量精简列表
     *
     * @param query 筛选条件(code和name通用)
     * @return 现存量精简列表
     */
    List<InventoryStockDO> getInventoryStockSimpleList(String query);

    /**
     * 获得可用量
     *
     * @param inventoryStockReqVO 可用量 ReqVo
     * @return 可用量
     */
    Double getInventoryAvailableAmount(InventoryStockReqVO inventoryStockReqVO);

}